package com.zws.cucumber.util.cass.backdoor;

import java.util.List;

public interface ZwsCassBackdoorClient {

    /*
     * Table hash
     */
    record TableHash(String table, String hash) {}

    List<TableHash> listTableHashes(String keyspace);

    void updateTableHashes(String keyspace, List<TableHash> tableHashes);

    void flushTableHashes(String keyspace);

    /*
     * Table truncate
     */
    void truncate(String keyspace, String ... tables);

    /*
     * Snapshot
     */
    default void takeSnapshot(String snapshotName, String keyspace) {
        throw new UnsupportedOperationException();
    }

    default void restoreSnapshot(String snapshotName, String keyspace) {
        throw new UnsupportedOperationException();
    }

    default void deleteSnapshot(String snapshotName) {
        throw new UnsupportedOperationException();
    }

    default void clearSnapshots() {
        throw new UnsupportedOperationException();
    }

    /*
     * Timeout
     */
    default void enableTimeout(String dataManipulationType, String targetTable) {
        throw new UnsupportedOperationException();
    }

    default void disableTimeout() {
        throw new UnsupportedOperationException();
    }

}
